package cn.anxingongyou.anxin.entity;

import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;

@Table(name = "user_worker_info")
@Document(indexName = "anxin_worker",type = "worker")
public class UserWorkerInfo implements Serializable {
    /**
     * 主键
     */
    @Id
    @Field(type = FieldType.Long,store = true)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 父表（用户的总体）
     */
    @Column(name = "user_pid")
    @Field(type = FieldType.Long,store = true)
    private Long userPid;

    /**
     * 头像地址
     */
    @Field(type = FieldType.Text,store = true)
    private String avatar;

    /**
     * 用户姓名
     */
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String username;

    /**
     * 用户手机号
     */
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String phone;

    /**
     * 性别 0:男 1:女
     */
    @Field(type = FieldType.Integer,store = true)
    private Integer sex;

    /**
     * 所属年龄段
     */
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String age;

    /**
     * 教育程度
     */
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String education;

    /**
     * 工作经验
     */
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String experience;

    /**
     * 期望薪资
     */
    @Field(type = FieldType.Text,store = true)
    private String salary;

    /**
     * 擅长职位String数组
     */
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String speciality;

    /**
     * 身份证照片
     */
    @Column(name = "ID_pic")
    @Field(type = FieldType.Text,store = true)
    private String idPic;

    /**
     * 用户自拍照
     */
    @Column(name = "user_pic")
    @Field(type = FieldType.Text,store = true)
    private String userPic;

    /**
     * 0:未提交认证 1:未通过 2：已通过 3:等待审核）
     */
    @Column(name = "is_auth")
    @Field(type = FieldType.Integer,store = true)
    private Integer isAuth;

    /**
     * （0:否 1:是）是否vip
     */
    @Field(type = FieldType.Integer,store = true)
    @Column(name = "is_vip")
    private Integer isVip;

    /**
     * （0:未完善 1:完善）是否完善个人信息
     */
    @Column(name = "is_perfect")
    @Field(type = FieldType.Integer,store = true)
    private Integer isPerfect;

    /**
     * （null:无限期 ）vip结束日期
     */
    @Column(name = "vip_end_date")
    @Field(type = FieldType.Date,store = true)
    private Date vipEndDate;

    /**
     * 更新时间
     */
    private Date updated;

    /**
     * 创建时间
     */
    private Date created;

    /**
     * 求职区域json对象
     */
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String region;

    /**
     * 自我介绍
     */
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String introduction;

    /**
     * 自我评价标签json对象
     */
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String label;

    private static final long serialVersionUID = 1L;

    /**
     * 获取主键
     *
     * @return id - 主键
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置主键
     *
     * @param id 主键
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取父表（用户的总体）
     *
     * @return user_pid - 父表（用户的总体）
     */
    public Long getUserPid() {
        return userPid;
    }

    /**
     * 设置父表（用户的总体）
     *
     * @param userPid 父表（用户的总体）
     */
    public void setUserPid(Long userPid) {
        this.userPid = userPid;
    }

    /**
     * 获取头像地址
     *
     * @return avatar - 头像地址
     */
    public String getAvatar() {
        return avatar;
    }

    /**
     * 设置头像地址
     *
     * @param avatar 头像地址
     */
    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    /**
     * 获取用户姓名
     *
     * @return username - 用户姓名
     */
    public String getUsername() {
        return username;
    }

    /**
     * 设置用户姓名
     *
     * @param username 用户姓名
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * 获取用户手机号
     *
     * @return phone - 用户手机号
     */
    public String getPhone() {
        return phone;
    }

    /**
     * 设置用户手机号
     *
     * @param phone 用户手机号
     */
    public void setPhone(String phone) {
        this.phone = phone;
    }

    /**
     * 获取性别 0:男 1:女
     *
     * @return sex - 性别 0:男 1:女
     */
    public Integer getSex() {
        return sex;
    }

    /**
     * 设置性别 0:男 1:女
     *
     * @param sex 性别 0:男 1:女
     */
    public void setSex(Integer sex) {
        this.sex = sex;
    }

    /**
     * 获取所属年龄段
     *
     * @return age - 所属年龄段
     */
    public String getAge() {
        return age;
    }

    /**
     * 设置所属年龄段
     *
     * @param age 所属年龄段
     */
    public void setAge(String age) {
        this.age = age;
    }

    /**
     * 获取教育程度
     *
     * @return education - 教育程度
     */
    public String getEducation() {
        return education;
    }

    /**
     * 设置教育程度
     *
     * @param education 教育程度
     */
    public void setEducation(String education) {
        this.education = education;
    }

    /**
     * 获取工作经验
     *
     * @return experience - 工作经验
     */
    public String getExperience() {
        return experience;
    }

    /**
     * 设置工作经验
     *
     * @param experience 工作经验
     */
    public void setExperience(String experience) {
        this.experience = experience;
    }

    /**
     * 获取期望薪资
     *
     * @return salary - 期望薪资
     */
    public String getSalary() {
        return salary;
    }

    /**
     * 设置期望薪资
     *
     * @param salary 期望薪资
     */
    public void setSalary(String salary) {
        this.salary = salary;
    }

    /**
     * 获取擅长职位String数组
     *
     * @return speciality - 擅长职位String数组
     */
    public String getSpeciality() {
        return speciality;
    }

    /**
     * 设置擅长职位String数组
     *
     * @param speciality 擅长职位String数组
     */
    public void setSpeciality(String speciality) {
        this.speciality = speciality;
    }

    /**
     * 获取身份证照片
     *
     * @return ID_pic - 身份证照片
     */
    public String getIdPic() {
        return idPic;
    }

    /**
     * 设置身份证照片
     *
     * @param idPic 身份证照片
     */
    public void setIdPic(String idPic) {
        this.idPic = idPic;
    }

    /**
     * 获取用户自拍照
     *
     * @return user_pic - 用户自拍照
     */
    public String getUserPic() {
        return userPic;
    }

    /**
     * 设置用户自拍照
     *
     * @param userPic 用户自拍照
     */
    public void setUserPic(String userPic) {
        this.userPic = userPic;
    }

    /**
     * 获取0:未提交认证 1:未通过 2：已通过 3:等待审核）
     *
     * @return is_auth - 0:未提交认证 1:未通过 2：已通过 3:等待审核）
     */
    public Integer getIsAuth() {
        return isAuth;
    }

    /**
     * 设置0:未提交认证 1:未通过 2：已通过 3:等待审核）
     *
     * @param isAuth 0:未提交认证 1:未通过 2：已通过 3:等待审核）
     */
    public void setIsAuth(Integer isAuth) {
        this.isAuth = isAuth;
    }

    /**
     * 获取（0:否 1:是）是否vip
     *
     * @return is_vip - （0:否 1:是）是否vip
     */
    public Integer getIsVip() {
        return isVip;
    }

    /**
     * 设置（0:否 1:是）是否vip
     *
     * @param isVip （0:否 1:是）是否vip
     */
    public void setIsVip(Integer isVip) {
        this.isVip = isVip;
    }

    /**
     * 获取（0:未完善 1:完善）是否完善个人信息
     *
     * @return is_perfect - （0:未完善 1:完善）是否完善个人信息
     */
    public Integer getIsPerfect() {
        return isPerfect;
    }

    /**
     * 设置（0:未完善 1:完善）是否完善个人信息
     *
     * @param isPerfect （0:未完善 1:完善）是否完善个人信息
     */
    public void setIsPerfect(Integer isPerfect) {
        this.isPerfect = isPerfect;
    }

    /**
     * 获取（null:无限期 ）vip结束日期
     *
     * @return vip_end_date - （null:无限期 ）vip结束日期
     */
    public Date getVipEndDate() {
        return vipEndDate;
    }

    /**
     * 设置（null:无限期 ）vip结束日期
     *
     * @param vipEndDate （null:无限期 ）vip结束日期
     */
    public void setVipEndDate(Date vipEndDate) {
        this.vipEndDate = vipEndDate;
    }

    /**
     * 获取更新时间
     *
     * @return updated - 更新时间
     */
    public Date getUpdated() {
        return updated;
    }

    /**
     * 设置更新时间
     *
     * @param updated 更新时间
     */
    public void setUpdated(Date updated) {
        this.updated = updated;
    }

    /**
     * 获取创建时间
     *
     * @return created - 创建时间
     */
    public Date getCreated() {
        return created;
    }

    /**
     * 设置创建时间
     *
     * @param created 创建时间
     */
    public void setCreated(Date created) {
        this.created = created;
    }

    /**
     * 获取求职区域json对象
     *
     * @return region - 求职区域json对象
     */
    public String getRegion() {
        return region;
    }

    /**
     * 设置求职区域json对象
     *
     * @param region 求职区域json对象
     */
    public void setRegion(String region) {
        this.region = region;
    }

    /**
     * 获取自我介绍
     *
     * @return introduction - 自我介绍
     */
    public String getIntroduction() {
        return introduction;
    }

    /**
     * 设置自我介绍
     *
     * @param introduction 自我介绍
     */
    public void setIntroduction(String introduction) {
        this.introduction = introduction;
    }

    /**
     * 获取自我评价标签json对象
     *
     * @return label - 自我评价标签json对象
     */
    public String getLabel() {
        return label;
    }

    /**
     * 设置自我评价标签json对象
     *
     * @param label 自我评价标签json对象
     */
    public void setLabel(String label) {
        this.label = label;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", userPid=").append(userPid);
        sb.append(", avatar=").append(avatar);
        sb.append(", username=").append(username);
        sb.append(", phone=").append(phone);
        sb.append(", sex=").append(sex);
        sb.append(", age=").append(age);
        sb.append(", education=").append(education);
        sb.append(", experience=").append(experience);
        sb.append(", salary=").append(salary);
        sb.append(", speciality=").append(speciality);
        sb.append(", idPic=").append(idPic);
        sb.append(", userPic=").append(userPic);
        sb.append(", isAuth=").append(isAuth);
        sb.append(", isVip=").append(isVip);
        sb.append(", isPerfect=").append(isPerfect);
        sb.append(", vipEndDate=").append(vipEndDate);
        sb.append(", updated=").append(updated);
        sb.append(", created=").append(created);
        sb.append(", region=").append(region);
        sb.append(", introduction=").append(introduction);
        sb.append(", label=").append(label);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}